import {
	createStore
} from 'vuex' //导入createStore构造函数
export default createStore({
	state: { //Vuex的状态，实际上就是存数据的地方
		person: {
			name: 'KelvinLiu',
			age: 200
		}
	},
	getters: { //提供获取Vux状态的方式, 注意在组件中调用时getPerson是以属性的方式被访问
		getPerson(state) {
			return state.person
		}
	},
	mutations: { //提供直接操作Vuex的方法，注意mutations里的方法中不能有任何异步操做
		TOKEN(state, value) {
			//第一个参数state为Vuex状态；第二个参数为commit函数传来的值
			state.person.token += value
		}
	},
	actions: { //提供通过mutations方法来简介操作Vuex的方法
		TOKEN(context, value) {
			//第一个参数context为上下文，提供一些方法；第二个参数为dispatch函数传来的值
			context.commit('TOKEN', value)
		}
	},
})